#ifndef STATE_H
#define STATE_H

#include "SFML\Graphics.hpp"
#include "..\Generic\GameTime.h"

class State
{
public:
	State() : m_pause(false){}
	virtual ~State(){}

	virtual void initialize() = 0;
	virtual void shutdown() = 0;
	virtual void handleEvents() = 0;
	virtual void update(const GameTime&) = 0;

	virtual void setPause(bool p_value)	{ m_pause = p_value; }
	const bool isPaused() const { return m_pause; }

protected:
	bool m_pause;
};

#endif // STATE_H